package com.itheima.window;

public class LeetCode643 {
    //给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。
    //
    //请你找出平均数最大且 长度为 k 的连续子数组，并输出该最大平均数。
    //
    //任何误差小于 10-5 的答案都将被视为正确答案。

    public double findMaxAverage(int[] nums, int k) {
        //其实可以直接找总值最大
        double avg = 0;
        double avgMax = Double.NEGATIVE_INFINITY;

        if(nums.length <= k){
            for (int i = 0; i < nums.length; i++) {
                avg += nums[i];
            }
            return avg / nums.length;
        }

        for (int i = 0; i < nums.length; i++) {
            //开始滑动窗口
            avg += nums[i];
            if(i < k - 1){
                continue;
            }
            avgMax = Math.max(avg, avgMax);
            int out = nums[i - k + 1];
            avg -= out;
        }

        return avgMax / k;
    }
}


